package Thread;
// 线程的创建（3)
/**
 * 本质上是方法1，匿名内部类
 * 这样子可以少定义一些类，如果某个代码是一次性的，就可以使用匿名内部类的写法
 */

public class demo3 {
    public static void main(String[] args) throws InterruptedException {
        // 1.创建了一个新的Thread类的匿名子类实例，匿名子类没有名字，但是继承了Thread类
        Thread t = new Thread(){
            // 2.编写子类的定义代码，重写了父类的run方法
            // 3.创建了这个匿名内部类的实例，并把实例的引用赋值给t
            @Override
            public void run() {
                while(true) {
                    System.out.println("hello thread");
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                        throw new RuntimeException(e);
                    }
                }
            }
        };
        t.start();
        while(true) {
            System.out.println("hello main");
            Thread.sleep(1000);
        }
    }
}
